﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using ASPPanificadora.fabrica;
using NHibernate;
using ASPPanificadora.classes;
using NHibernate.Criterion;

namespace ASPPanificadora.controller
{
    public class CidadeController : ICidadeController
    {
        Fabrica fabrica = new Fabrica();
        public IList<Pais> RetornaPais()
        {
            
            ISession sessao = fabrica.sessao();
            IList<Pais> pais = sessao.CreateCriteria<Pais>().List<Pais>();
            fabrica.fechaSessao();
            return pais;
        }

        public IList<Estado> RetornaEstadoPorPais(int idPais)
        {
            ISession sessao = fabrica.sessao();
            IList<Estado> estados = sessao.CreateCriteria<Estado>().Add(Restrictions.Eq("Pais.Id", idPais)).SetResultTransformer(NHibernate.Transform.Transformers.DistinctRootEntity).List<Estado>();
            fabrica.fechaSessao();
            return estados;
        }

        public IList<Cidade> RetornaCidadePorEstado(int  idEstado)
        {
            ISession sessao = fabrica.sessao();
            IList<Cidade> cidades = sessao.CreateCriteria<Cidade>().Add(Restrictions.Eq("Estado.Id", idEstado)).SetResultTransformer(NHibernate.Transform.Transformers.DistinctRootEntity).List<Cidade>();
            fabrica.fechaSessao();
            return cidades;
        }
    }
}